Skip to content

迭代工具模块

迭代工具模块 itertools 能实现一些常见的迭代功能,如生成排列组合。

笛卡尔乘积 product

itertools.product(iter1, iter2, ... iterN[,repeat=1])

product 方法实现从 iter1, iter2, ... iterN 序列中,生成重复 repeat 次(默认为 1)的笛卡尔乘积。

python
import itertools
product = itertools.product('12','34')
for i in product:
    print(i)

排列 permutations

itertools.permutations(iteravle[,r])

permutations 方法实现从 iteravle 序列中,生成长度为 r(默认为 iteravle 的长度)的排列

python
import itertools
permutations = itertools.permutations('123', 3)
for i in permutations:
    print(i)

组合 combinations

itertools.combinations(iteravle ,r)

combinations 方法实现从 iteravle 序列中,生成长度为 r 的组合

python
import itertools
combinations = itertools.combinations('123', 2)
for i in combinations:
    print(i)

可重复组合 combinations_with_replacement

itertools.combinations_with_replacement(iteravle ,r)

combinations_with_replacement 方法实现从 iteravle 序列中,生成长度为 r 的组合,其中元素可重复使用

python
import itertools
combinations = itertools.combinations_with_replacement('123', 2)
for i in combinations:
    print(i)